package com.props.starter.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

@Data
@ConfigurationProperties(prefix = "props.management")
public class PropsManagementProperties {

    /**
     * 是否启用配置管理功能
     */
    private boolean enabled = true;

    /**
     * 版本管理目录，如果不配置则不进行版本管理
     */
    private String versionDir;

    /**
     * 配置文件扫描目录，默认为classpath根目录和config目录
     */
    private String[] scanPaths = {"", "config/"};

    /**
     * 需要排除扫描的文件名模式列表
     * 支持精确匹配和通配符模式（* 和 ?）
     * 例如：["test-*.properties", "temp.yml", "*-local.*"]
     */
    private String[] excludeFiles = {};

    /**
     * 需要排除扫描的文件名前缀列表
     * 例如：["test-", "temp-", "local-"]
     */
    private String[] excludePrefixes = {};

    /**
     * 需要排除扫描的文件名后缀列表
     * 例如：["-test.properties", "-dev.yml"]
     */
    private String[] excludeSuffixes = {};

    /**
     * 管理界面的访问路径
     */
    private String managementPath = "/props-management";

    /**
     * 是否允许在线修改配置
     */
    private boolean allowOnlineEdit = true;

    /**
     * 最大保留版本数量
     */
    private int maxVersions = 10;
} 